KVM, Kernel Virtual Machine, est intégré depuis le noyau 2.6.20 et permet une virtualisation matérielle et donc une accélération de la virtualisation de système d’exploitation.
C'est un système optimisé pour la virtualisation de serveur. Pour virtualiser des systèmes de type desktop, on peut lui préférer virtualbox. KVM semble en effet plus performant en consommation de processeur mais plus lent pour l'émulation du périphérique graphique. L'utilisation d'un bureau virtualisé dans VirtualBox pourra donc laisser une meilleure impression à l'utilisateur.
Néanmoins, KVM est complètement libre, performant et très facile à installer et à utiliser. Enfin, les administrateurs réseaux pourront être intéressés par virt-manager
Tout d’abord, assurez-vous que votre processeur supporte la virtualisation matérielle et, si c’est bien le cas, assurez-vous également que ce support est bien activé par le BIOS. Pour cela tapez cette commande :
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Si un résultat s'affiche, c'est que le processeur supporte la virtualisation.
Puis, charger le module en fonction de votre processeur :
sudo modprobe kvm-amd
sudo modprobe kvm-intel
ajouter le module choisi dans /etc/modules pour que cela soit pris en compte au redémarrage :
kvm-intel
ou
kvm-amd
Ajouter votre utilisateur à ce groupe, soit à l’aide de votre outil de gestion des groupes, soit avec cette commande :
sudo adduser $USER kvm
Redémarrez enfin l'ordinateur (ou simplement la session si aucune console tty n'est ouverte) afin que l'utilisateur soit affecté au groupe.
Vous voilà prêt à installer un système d’exploitation virtuel.
Commencez par créer le fichier image qui va accueillir ce système :
qemu-img create -f qcow2 emplacement/du/fichier_image.img 6G
Où :
emplacement/du/fichier_image.img est l’emplacement du fichier qui sera créé, 6G est la taille virtuelle de ce système de fichier virtuel.Puis installez votre système dessus en utilisant un CD-ROM d’installation :
kvm -m 256 -cdrom /dev/cdrom -boot d emplacement/du/fichier_image.img
Où 256 est la quantité de mémoire à utiliser.
Vous pouvez également utiliser une image ISO sans la graver :
kvm -m 256 -cdrom emplacement/de/l_image.iso -boot d emplacement/du/fichier_image.img
Pour quitter la fenêtre de virtualisation, il vous faut utiliser les combinaisons de touches "CTRL-ALT"
Une fois l'installation terminée, démarrez votre système virtuel :
kvm -m 256 emplacement/du/fichier_image.img
pour l'activation du son et de l'USB :
kvm -m 386 -std-vga -cdrom /dev/cdrom emplacement/du/fichier_image.img -soundhw all -usb
Voir aussi les autres paramètres de qemu qui peuvent être passés à kvm.
Un bug sur feisty empêche le démarrage des Live-CDs Ubuntu avec les processeurs Intel. La solution est de faire l’installation en désactivant le support de kvm. L’utilisation d'une machine virtuelle installée se fait correctement avec kvm.
Un bug sur Jaunty Jackalope empêche l'utilisation de l'option -vga std à moins de configurer manuellement le serveur X après l'installation.
Pour supprimer cette application, supprimez son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
A partir de Ubuntu 9.10 et suivant, il faut également supprimer le paquet qemu-kvm pour que la désinstallation soit complète.
lsmod | grep -e '^kvm'
Pour retirer les modules, tapez :
sudo rmmod (nom_du_module)
$ kvm-img convert -c -f qcow2 image.qcow2 -O qcow2 image-compressed.qcow2
$ kvm-img convert -f vmdk image.vmdk -O qcow2 image.qcow2
Vous pouvez monter directement un LV sur votre machine virtuelle. Ceci explique comment convertir un fichier .img en un Logical Volume sur LVM (visible depuis votre serveur KVM) Vous devez avoir au préalable déjà préparé un VG qui contiendra les data pour vos VM (ici appelé "vg_data"). (cf:Doc Ubuntu)
lvcreate -L80G -n lv_v-VmName vg_data
* Arrêt de votre VM * Copie du contenu de l'image IMG vers le LV :
dd if=/path/to/image/v-VmName.coe.int.img of=/dev/vg_data/lv_v-VmName
* Configurer votre VM pour utiliser ce LV
L'utilisation des bus virtio permet de prendre en compte la virtualisation par l'invité grâce à des pilotes spécifiques qui lui permettent de travailler en collaboration avec l'hyperviseur kvm de l'hôte.